Displaying aggregated connection data using a database system

ABSTRACT

Disclosed are database systems and related methods, apparatus, systems, and computer program products for displaying aggregated connection data. A database storing data objects identifying connection events may be maintained. An indication of a first connection event between first and second users may be processed. A record of the first connection event may be stored in the database. The record of the first connection event may be one of a plurality of records of connection events between the first and second users. The plurality of records may be processed to determine a plurality of levels of interaction strength between the first and second users. An interaction strength presentation may be displayed in a user interface on a display of a first device associated with the first user.

PRIORITY DATA

This patent document claims priority to co-pending and commonly assignedU.S. patent application Ser. No. 13/743,895, titled “Systems and Methodsfor Mapping Relevant Personal Connections,” by Parker Harris, et al,filed on Jan. 17, 2013 (Attorney Docket No. SALE 1023-2US), which claimspriority to U.S. Provisional Patent Application No. 61/579,098, titled“Systems and Methods for Mapping Relevant Personal Connections,” byParker Harris, et al, filed on Jan. 17, 2012. The entire disclosures ofU.S. patent application Ser. No. 13/743,895 and U.S. Provisional PatentApplication No. 61/579,098 are hereby incorporated by reference for allpurposes.

BACKGROUND

The subject matter discussed in the background section should not beassumed to be prior art merely as a result of its mention in thebackground section. Similarly, a problem mentioned in the backgroundsection or associated with the subject matter of the background sectionshould not be assumed to have been previously recognized in the priorart. The subject matter in the background section merely representsdifferent approaches, which in and of themselves may also correspond toimplementations of the claimed inventions.

The technology disclosed relates to calculating interaction strengthsfor physical interactions, scheduled physical interactions and wirelessinteractions between users of online social networks. In particular, itrelates to determining direct contact or likely contact between users ofonline social networks based in part on their mobile communicationdevices. This determination can be used to score interactions that takeplace outside the social network for interaction strengths.

Online social networks have become common tools through which usersinteract and share information across various channels including asmessages, e-mails, videos, chat rooms, blogs, etc. The inherent value ofan online social network is rooted in the value of a users' connectionsto other users and objects. Typically, most of this value is derivedfrom actions performed and captured on the social network websites. Forexample, a user may actively follow, like, or comment on another user orobject in order to integrate that user or object with the user's socialnetwork. Currently, actions external to the online social network cannotbe used to influence the relationship between users or between users andobjects on an online social network.

User interactions outside of the context of an online social network arenot captured or represented in a meaningful way by the social network.For instance, a physical interaction with another user such as attendinga meeting and conversing, or collectively viewing a presentation,contributes to a social network. However, there may not be any explicitinteraction through the social network, resulting in online socialnetworks not being able to capture such real-world interactions.

An opportunity arises to provide users of an online social network withmechanisms and methods for mapping connections with other relevant usersof the online social network. In particular, the technology disclosedallows users of an online social networks to capture real-worldinteractions with other users and represent them on the online socialnetwork. Improved representation and analysis of inter-userrelationships may result.

SUMMARY

The technology disclosed relates to calculating interaction strengthsfor physical interactions, scheduled physical interactions and wirelessinteractions between users of online social networks. In particular, itrelates to determining direct contact or likely contact between users ofonline social networks based in part on their mobile communicationdevices. This determination can be used to score interactions that takeplace outside the social network for interaction strengths.

Other aspects and advantages of the present invention can be seen onreview of the drawings, the detailed description and the claims, whichfollow.

BRIEF DESCRIPTION OF THE DRAWINGS

The included drawings are for illustrative purposes and serve only toprovide examples of possible structures and process operations for oneor more implementations of this disclosure. These drawings in no waylimit any changes in form and detail that may be made by one skilled inthe art without departing from the spirit and scope of this disclosure.A more complete understanding of the subject matter may be derived byreferring to the detailed description and claims when considered inconjunction with the following figures, wherein like reference numbersrefer to similar elements throughout the figures.

FIG. 1 illustrates one implementation of a graphical user interfacerepresenting a social profile associated with a user.

FIG. 2 illustrates one implementation of an exemplary online socialnetwork environment.

FIG. 3 illustrates one implementation of an example system that allowsmapping of relevant personal connections.

FIG. 4 is a flow chart of one implementation of calculating level ofphysical interactions between first and second users using first andsecond devices operating in peer-to-peer mode.

FIG. 5 is a message exchange chart of one implementation of someelements of FIG. 4.

FIG. 6 is a flow chart of one implementation of calculating level ofphysical interactions between first and second users using first andsecond devices participating in a wireless local area network.

FIG. 7 is a message exchange chart of one implementation of someelements of FIG. 6.

FIG. 8 is a flow chart of one implementation of calculating level ofwireless interactions between first and second users using first andsecond devices.

FIG. 9 is a message exchange chart of one implementation of someelements of FIG. 8.

DETAILED DESCRIPTION

The following detailed description is made with reference to thefigures. Sample implementations are described to illustrate thetechnology disclosed, not to limit its scope, which is defined by theclaims. Those of ordinary skill in the art will recognize a variety ofequivalent variations on the description that follows.

Physical and wireless interactions between users or between users andobjects can be used to calculate and/or build the users' social network.For example, the frequency of interaction between users can be used tomeasure the interaction strength of their relationship. In someimplementations, actions external to the online social network can beused to affect the interaction strength of users in an online socialnetwork.

Interaction strength information can be shared to the extent allowed bysettings. All social network users, or only those users who follow thefirst user, or only the first user can view the interaction strength onfirst user's profile page. Interaction strength can be based on metrics,such as the number of interactions within a defined time period (i.e.,frequency), the length of interaction, and the like. This interactionstrength calculation can consider interactions outside of the onlinesocial network, such as interactions observed with a CRM system. A firstuser's interactions with a second user recorded in the CRM system can beprovided to the social network and used to determine interactionstrength. In yet another implementation, interaction strength can alsobe based upon multiple social network interactions.

Physical interactions are captured based on wireless interactionsbetween mobile communication devices of two users. Use cases forpeer-to-peer communication between the respective mobile devices andsimultaneous interaction with a shared access point are described. Theseuse cases have in common physical proximity of users. The proximity ofmobile communication devices is used as a proxy for user interaction orat least for shared user experiences due to physical proximity.

Scheduled physical interactions are captured from calendar entries,event subscriptions, sign-ins and the like that place two users at thesame event. The scheduled physical interactions may be analyzed when theuser's respective privacy settings allow. Analysis of schedule physicalinteractions may be triggered by another interaction event, therebyreducing the potential intrusiveness of analyzing calendars.

Wireless communication interactions outside the social network can bemonitored using observer software residing on respective mobilecommunication devices. The observer software can monitor video, audioand text communications channels that are out of band from the socialnetwork.

In each of these use cases, connection events such as physicalconnection event, calendar connection event or wireless connection eventcan be created and stored in a database. A physical connection event canbe triggered by reception of a user identity token. The receiving devicecan record the duration and strength of the signal that broadcasted theuser identity token. It also can record the number of token broadcastsreceived and optionally their timing or continuity. Similarly, acalendar connection event is a memory update caused by a find or matchof calendar related electronic records of two users indicating theirco-attendance at an event Likewise, a wireless connection event isregistered at a server when two users communicate with each otheroutside the social network using their respective wireless devices.

Moreover, the connection events can be processed to determineconnectedness scores for pairs of users. Connectedness scores can bemade available to users for their own connections and to permittedviewers

Actions performed by a user outside the social network can be analyzedfrom browser cookies or the user's browser history. A user can usepermission levels to set the level of access to his browser history orto real-time browser actions. For purposes of this example, the actionsof the user can be accessed or tracked by an “observer tool.”

Once the observer tool is activated, either by the user or anadministrator having sufficient privileges, the actions of the user canbe analyzed. The observer tool can see that the user interacts with anumber of other users or objects on the social network, regardless ofwhether the user is following those other users or objects on the socialnetwork. Interactions can include, but are not limited to, viewing aprofile page of the user or object, commenting on a post mentioning theuser or object, initiating a chat session with the user, sending amessage to the user, and the like. If the first user is not following oris otherwise not connected to the user or object with which he or she isinteracting, the observer tool can trigger an action to suggest that thefirst user follow the user or object, or the observer tool can triggerthat the user or object be automatically followed by the first userbased upon a configurable number of interactions.

In one example, a first user can meet a second user at a conference,where electronic interactions between users' respective communicationdevices can confirm proximity and interaction between the users. Forinstance, each device may broadcast identity tokens once per minute.Each device may receive ten tokens in ten minutes with a received signalstrength indicator for peer-to-peer wireless channel that suggests closephysical proximity. Such interactions can affect the interactionstrength of the second user in the first user's social network, andvice-versa. Alternatively or additionally, calendar entries common toboth the users can contribute to an interaction strength for the twousers.

In another example, a second user can be excluded from interactionstrength calculation. The first user may not want to measure the extentof his or her relationship with the second user. However, if the seconduser provides an incentive, such as a piece of contact information,access, or other object or portion of an object to the first user, thefirst user may include the second user in the interaction strengthcalculation.

The technology disclosed relates to online social networks for use in acomputer-implemented system. The described subject matter can beimplemented in the context of any computer-implemented system, such as asoftware-based system, a database system, a multi-tenant environment, orthe like. Moreover, the described subject matter can be implemented inconnection with two or more separate and distinct computer-implementedsystems that cooperate and communicate with one another. One or moreimplementations may be implemented in numerous ways, including as aprocess, an apparatus, a system, a device, a method, a computer readablemedium such as a computer readable storage medium containing computerreadable instructions or computer program code, or as a computer programproduct comprising a computer usable medium having a computer readableprogram code embodied therein.

Social Profile

FIG. 1 illustrates one implementation of a graphical user interface 100representing a social profile 105 associated with a user 110. Inparticular, FIG. 1 illustrates the social profile 105 of user John Doe110 on an online social network 200 such as Salesforce's Chatter. Thesocial profile 105 can include the user's name, contact information,professional information, and/or picture. In addition, the socialprofile 105 can list other users connected with John Doe 110 includingJane Doe 112 and Jake Doe 122.

In some implementations, the social profile 105 can include a connectionreview tab 106 that displays interaction strength 114 of John Doe 110with other users such as Jane Doe 112 and Jake Doe 122. The interactionstrength 114 can be based on physical interactions 113, calendar events115, wireless interactions 116, desktop history 117, combinedinteractions 118, and the like, which can be displayed as separateindividual tabs. The interaction strength 114 can be indicated throughscoring functions, point system, meters, highlighting or other graphicalenhancements, ordering, mouseovers, or indicators. In otherimplementations, selecting one of these tabs can open a new view orbrowser window elaborating the selected tab. Another example can includea list created by John Doe 110 to view his interaction strength withspecific users.

Online Social Network

FIG. 2 illustrates one implementation of an online social networkenvironment 200. The users 110 and 112 of online social networkenvironment 200 can use wireless devices 208 and 215 communicatingthrough peer-to-peer connection 209 or simultaneously interacting with ashared access point 210 (AP) configured on a wireless local area network211 (WLAN).

The devices 208 and 215 can include a number of components, thecontrolling components being processors. Processors can include one ormore digital signal processor (DSP), microprocessor, microcontroller,central procession unit (CPU) or graphics processing unit (GPU),application specific integrated circuit (ASIC), reduced instruction setcomputing (RISC) or field-programmable gate array (FPGA) or acombination of these processor types. Processors can control the overalloperations of the devices 208 and 215. In addition to their operatingsystem functions, they can execute software applications on the devices208 and 215. The processors can interact with other components of therespective devices 208 and 215 such as radio frequency (RF)transceivers, device interfaces, memory units, etc.

The communication related functions of the devices 208 and 215 areperformed by the RF transceivers. The RF transceivers cantransmit/receive RF signals through antennas 205 and 212. Fortransmission, the RF transceivers can perform data channel-coding andspreading. In case of reception, they can convert received RF signalsinto baseband signals and perform de-spreading and channel decoding onthe baseband signals to recover the original data.

Additionally, RF transceivers can search for neighboring RF transceiversand perform a discovery or pairing process. The RF transceivers inconjunction with the processors can—function as a signal measurementunit for determining the strength of a received signal or receivedsignal strength indication (RSSI), implement a timer for determining theduration of a connection or broadcast, and place timestamps on thetransferred signals for recording the date and time of transmission orreception.

The input/output related functions of the devices 208 and 215 areexecuted by device interfaces. The device interfaces can comprise ofvarious input/output sub-systems such as a display, keyboard,microphone, speaker, serial port, etc. In some implementations, thedevices 208 and 215 can include one or more device interfaces forproviding users access to various system components and receivinginformation.

The memory units such as Read Only Memory (ROM), Random Access Memory(RAM), flash memory and disk drive among others, can provide persistentor volatile storage. In some implementations, the memory units canstore—micro-codes of a program for processing and controlling deviceoperations, temporary data generated during program executions, reserveddata, and data transmitted and received by the devices 208 and 215.

User Identity Tokens

Snippets of data, referred to as “user identity tokens” 1 and 2 can beused for discovery of respective users 110 and 112 of the online socialnetwork 200. In some implementations, user identity tokens 1 and 2 caninclude encrypted data unique to users 110 and 112. In addition, theuser identity tokens 1 and 2 can include the social identities of theusers 110 and 112 setup on the online social network 200. In otherimplementations, the server 225 can generate encrypted “user identifierkeys” unique to the users of online social network 200. Users 110 and112 can anonymously broadcast their user identifier tokens 1 and 2 oruser identifier keys to identify other users of the online socialnetwork 200. Other authentication protocols can be implemented.

Short-range communication systems such as Bluetooth, Near FieldCommunication (NFC), RFID, Z-Wave, ZigBee, etc. can establishpeer-to-peer (P2P) connection 209 between devices that are in closephysical proximity of each other. During a P2P connection 209, devices208 and 215, when within transmission range of each other, broadcastuser identity tokens 1 and 2. In P2P passive or connectionless mode, oneof the devices can initiate the broadcast, and other can behave as areceiver without pairing. In P2P active mode, in which the devices arepaired or have built a connection, both devices 208 and 215 can transmitand receive identity tokens 1 and 2.

WLAN 211 such as Wi-Fi, can connect the devices 208 and 215 to AP 210using medium range signals. During WLAN connection 211, devices 208 and215 can operate in broadcast (connectionless) or connected modes. In abroadcast mode, broadcasting devices 208 and 215 connected to a sharedAP 210 can be presumed to be in close proximity. Tokens can, forinstance, be broadcast to MAC address or to another MAC or IP address ofa defined network segment scope. Broadcasting to a MAC address issupported by IPv4 and IEEE 802.11. In IPv6, multicasting takes the placeof broadcasting. Tokens can be embedded in recognized broadcast messagetypes. One example of a broadcast protocol is Internet Control MessageProtocol, which is implemented in both IPv4 and IPv6. ICMP messages ofvarious types could be used or a new type chosen from the reserved rangeof type codes. Another example of a broadcast protocol supported by IPv4is the address resolution protocol (ARP). Query messages can be used toscan a WLAN segment 211. From responses to a query, a list of uniquemedia access control (MAC) addresses of connected devices can becompiled. In IPv6, the neighborhood discovery protocol (NDP) specifies avariety of multicast message types that could be adapted fortransmitting identity token information. When the devices 208 and 215can broadcast ARP messages or user identity tokens 1 and 2, the AP canforward the broadcasts to other connected devices. In someimplementations, multiple APs covering a single location, such as alarge meeting room, can be relay broadcasts as a group or can be treatedas a single AP.

Connection Events

Upon receiving user identity tokens, the devices 208 and 215 can storethe tokens in their local memory units and automatically or manuallyupload them to server 225 connected to an identity token database 222.The server 225 can use identity tokens individually or in aggregate tocreate a physical connection event in the connection event database 221.

In some implementations, the system or users 110 and 112 can set athreshold or timeout limit to help the mobile devices aggregate physicalconnection events resulting from successive reception of the same useridentity token. In aggregated physical connection events resulting fromreception of multiple user identity tokens, user identity tokens withhigher counts, lengthier timestamps readings, or greater received signalstrengths indications (RSSI) can indicate sustained and close proximityof two devices.

Aggregation can be performed on the devices 208 and 215, the server 225,or both. For instance, the devices 208 and 215 may aggregate receiveduser identity tokens to determine a timestamp duration. In someimplementations, failure to receive a user identity token from abroadcasting device within a pre-set time window can cause the receivingdevice to close and summarize a connection event. After a timeoutduration without receiving further user identity tokens, the devices 208and 215 may forward the batch of collected user identity tokens andassociated metadata including timestamp durations and RSSI values to theserver 225. The devices 208 and 215 can indicate the quality of atransmission as “strong” or “average” based on the number of collecteduser identity tokens and the associated metadata values. The quality ofa broadcast can indicate close proximity of the broadcasting device andbe used by the sever 255 for interaction strength calculation. In otherimplementations, aggregation of subsequent user identity tokens can belimited by the server.

The aggregated physical connection events and corresponding calendarconnection events can be used to calculate a level of physicalinteractions (explained later). The calculated level of physicalinteractions can be depicted through an interaction strength metric onthe social profile 105 of John Doe 110. The social profile 105 can beaccessed from a browser 255 running on the computing device 235 andbeing tracked by an observer tool 245. The browser 255 can be Chrome,Internet Explorer, Firefox, Safari, etc. or the like that is capable ofsending and receiving information to and from the server 225. In someimplementations, the server 225 can apply a filter to calendarconnection events and received user identity tokens for identifyingparticular events or user properties desired by the users 110 and 112.

In some implementations, the devices 208 and 215 can use Bluetoothtechnology, which can include an identification phase and a pairingphase. During the identification phase, the broadcasting device 208 canset a frequency-hopping pattern, to which the device 215 can synchronizeits signals. In the pairing phase, the device 208 and 215 can transmitlow power short-range RF signals and broadcast user identity tokens 1and 2. Alternatively, tokens can be received and processed withoutpairing in a connectionless mode.

In other implementations, the devices 208 and 215 can use NFC forultra-short-range communication and replace the identification phase ofthe Bluetooth technology with a simple tap between the devices 208 and215. In case of NFC, antennas 205 and 212 can function as windings of atransformer to generate high power ultra-short-range RF signals forbroadcasting user identity tokens 1 and 2.

In other implementations, the devices 208 and 215 can participate in theWLAN 211 through Wi-Fi, via an AP 210 that broadcasts a Wi-Fi signalusable over a medium-range area. In response to a MAC address based ARPscan initiated by devices 208 and 215, the AP 210 can generate a list ofdevices connected to it along with their MAC address, names, format,Internet Protocol (IP), etc. The devices 208 and 215 can then use theuser identity tokens to filter those devices from the list whose usersare in the same online social network environment as those of devices208 and 215.

FIG. 3 illustrates one implementation of an example system 300 thatallows mapping of relevant personal connections. In FIG. 3, thecomponents are configured to operate within an execution environmenthosted by a device and/or multiple devices, as in a distributedexecution environment. Exemplary computing devices can include desktopcomputers, servers, networking devices, notebook, computers, PDAs,mobile phones, digital image capture devices and the like. The wirelessdevices 208 and 215 and computing devices 1 and 2 can be communicativelycoupled to one another via network 315. The network 315 may be anynetwork or combination of networks of devices that communicate with oneanother. For example, network 315 can be any one or any combination ofLocal Area Network (LAN), Wide Area Network (WAN), telephone network,wireless network, point-to-point network, star network, token ringnetwork, hub network, or other appropriate configuration including theInternet.

The calendar entries store 301 can store the calendar entries, eventsubscriptions, and sign-ins of the users 110 and 112, which are matchedin the calendar engine 305 to create or capture calendar connectionevents after locating a scheduled physical connection by finding acoincidence of scheduling, registration or check-in information inelectronic records of the users 110 and 112. The calendar connectionevent can correspond to information stored with the physical connectionevent in time or location. If the timestamp and location recordingsrelated to a physical connection event matches the time and venueentries associated with a scheduled connection event, then the twoconnection events can be presumed to correspond to each other.

The connection events can be further stored in the calendar events store309. The social network engine 310 can provide online socialapplications that store the social profiles of the users 110 and 112.The interaction engine 319 can calculate the level of physicalinteraction between the users 110 and 112 by matching the correspondingphysical and calendar connection events. The user profile database 320can include the user identity tokes 1, 2, and 3 of users 110 and 112.

Physical Interactions Level

FIG. 4 is a flow chart 400 of one implementation of calculating a levelof physical interactions between first user 110 using first device 208and second user 112 using second device 215 communicating via P2Pconnection 209. Other implementations may perform the steps in differentorders and/or with different, fewer or additional steps than the onesillustrated in FIG. 4. Multiple steps can be combined in someimplementations. For convenience, this flowchart is described withreference to the system that carries out a method. The system is notnecessarily part of the method.

As explained above, when in close proximity with each other, first andsecond devices 208 and 215 broadcast short-range RF signals at step 407.The user identity tokens 1 and 2 of respective users 110 and 112 thatinclude users' social identities are broadcasted through the broadcastsignals at step 415. If the users are members of the online socialnetwork 200, a physical connection event is registered in the connectionevent database 221 at step 417. At step 425, the timestamps of the firstand last reception of user identity tokens 1 and 2 can be used to recordthe broadcast durations. The RSSI values of the broadcasts can berecorded at step 427, quantifying the quality of broadcasts with eachdevices 208 and 215. At step 435, the presumption of contact or likelycontact between the users 110 and 112 is narrowed based on the broadcastdurations and RSSI values, with longer broadcasts and higher RSSI valuessuggesting greater proximity between users 110 and 112. The electronicrecords of the users 110 and 112 pertaining to calendar entries, eventsubscriptions, sign-ins and the like that place two users at the sameevent are matched at step 437. A find or a match creates a calendarconnection event in the connection event database 221 at step 445.

As explained above, the connectedness of aggregated physical connectionevents with calendar connection events is optionally confirmed at step447 on the basis of their respective time and location fields. Theconnectedness confirmation is approved by the users 110 and 112 at step455 to ensure that they actually attended the events whose calendarentries and the like created the calendar connection events. At step457, a level of physical interaction between the users 110 and 112 iscalculated by the interaction engine 319 based on the aggregatedphysical connection events and the corresponding calendar connectionevents.

Following this, at steps 465 and 467, filtering mechanisms areimplemented to the calendar connection events and received user identitytokens 1 and 2 for identifying particular events or user properties. Atstep 475, the social profiles of the users 110 and 112 are modified onthe online social network 200 through an interaction strength metricusing scoring functions, point systems, meters, graphical enhancements,etc.

FIG. 5 is a message exchange chart 500 of one implementation of someelements of FIG. 4. At exchange 532, first device 208 sends the useridentity token 1 of the first user 110 to second device 215. The seconddevice 215 relays the received user identity token 1 to the server 225at exchange 534, which stores it in the identity token database 221 andidentifies the user associated with it. At exchange 553, second device215 transmits the user identity token 2 of the second user 112 to firstdevice 208. The first device 208 relays it to the server 225 for thesame “social identity analysis” as at exchange 534. The RSSI values andbroadcast durations are reported to the server 225 at exchanges at 563and 565. At exchanges 565 and 575, the server 225 sends theconnectedness confirmation inquiry to the users 110 and 112 via theirrespective devices 208 and 215. The users 110 and 112 then approve theconnectedness confirmation at exchanges 585 and 587. Following this, theserver 225 sends the level of physical interactions between the users110 and 112 calculated by interaction engine 319 to the respectivedevices 208 and 215 at exchanges 595 and 597.

FIG. 6 is a flow chart 600 of one implementation of calculating a levelof physical interactions between first user 110 using first device 208and second user 112 using second device 215 communicating via WLAN 211.Other implementations may perform the steps in different orders and/orwith different, fewer or additional steps than the ones illustrated inFIG. 6. Multiple steps can be combined in some implementations. Forconvenience, this flowchart is described with reference to the systemthat carries out a method. The system is not necessarily part of themethod.

As explained above, the first and second devices 208 and 215 wirelesslydiscover other proximate devices. This discovery can be connectionlessor connected, as between wireless devices, each of which is connected toAP 210 at step 607. In some implementations, a MAC-based ARP scan can bepart of the discovery. To reduce potential intrusiveness, the devices208 and 215 optionally can broadcast user identity tokens 1 and 2 tojust those devices whose users are members of the online social network200. If first user identity token 1 being broadcasted by first device208 confirms the membership of user 110 in the online social network200, then it is collected by first device 215 at step 615. Also at step615, The second device 215 broadcasts a second user identity token 2,which is filtered against the profiles stored in the user profiledatabase 320 by the server 225 to confirm that the second user 112 is amember of the online social network 200. With the reception of the useridentity tokens, physical connection events are registered in theconnection event database 221 at step 617. At step 625, the timestampsof the first and last reception of user identity tokens 1 and 2 are usedto record the broadcast durations. The RSSI values of the broadcasts arerecorded at step 627, quantifying the quality of broadcasts with eachdevices 208 and 215.

At step 635, the presumption of contact or likely contact between theusers can be narrowed based on the broadcast durations and RSSI values,with longer broadcasts and higher RSSI values suggesting greaterproximity between users. The electronic records of the users pertainingto calendar entries, event subscriptions, sign-ins and the like thatplace two users at the same event are matched at step 637. A find or amatch creates a calendar connection event in the connection eventdatabase 221 at step 645.

As explained above, the connectedness of aggregated physical connectionevents with calendar connection events confirmed at step 647 on thebasis of their respective time and location fields. The connectednessconfirmation is approved by the users 110 and 112 at step 655 to ensurethat they actually attended the events whose calendar entries and thelike created the calendar connection events. At step 657, a level ofphysical interaction between the users is calculated by the interactionengine 319 based on the aggregated physical connection events and thecorresponding calendar connection events. Following this, at steps 665and 667, filtering mechanisms are implemented to the calendar connectionevents and received user identity tokens for identifying particularevents or user properties. At step 675, the social profiles of the usersare modified on the online social network 200 through an interactionstrength metric using scoring functions, point systems, meters,graphical enhancements and the like.

FIG. 7 is a message exchange chart 700 of one implementation of someelements of FIG. 6. Optionally, the first device 208 sends a devicediscovery request to AP 210 at exchange 702. The AP 210 reports a listof devices discovered on its network to the first device 208 at exchange706, including the second device 215.

Using the AP MAC address of the second device 215 obtained from thediscovery report, the first device 208 sends the first user identitytoken 1 to the second device 215 at exchange 707. The second device 215relays the first user identity token 1 to the server 225 at exchange709. Optionally, it can check if the user 110 associated with the firstidentity token 1 is a member of the online social network 200. If theserver 225 confirms that user 110 is a member of the online socialnetwork 200, then the second device 215 broadcasts the second useridentity token 2 to the first device 208 at exchange 713. The firstdevice 208 forwards the second identity token to the server 225 atexchange 718 to make the same identity check done by second device 215at exchange 710. The RSSI values and broadcast durations are reported tothe server 225 at exchanges at 719 and 721. At exchanges 722 and 725,the server 225 sends the connectedness confirmation inquiry to the users110 and 112. The users 110 and 112 then approve the connectednessconfirmation at exchanges 728 and 730. Following this, the server 225sends the level of physical interactions calculated by interactionengine 319 to the devices 208 and 215 at exchanges 733 and 734.

The concept of calculating a level of physical interactions betweenusers can be further explained through an example scenario of aDreamforce conference. The users 110 and 112 of the online socialnetwork 200 using devices 208 and 215 can enable Bluetooth, NFC, orWi-Fi in their respective devices while attending Dreamforce conference.The users 110 and 112 can then broadcast their user identity tokens whentheir devices are within the transmission range of the enabled wirelessnetwork. The devices 208 and 215 can assign timestamps to the receiveduser identity tokens and track the duration and RSSI values of thebroadcast, which can be uploaded to the server 225 to create a physicalconnection event in the on-demand database 221.

Further on, while attending another event like a training workshop, theusers 110 and 112 can again exchange their user identity tokens whentheir devices are within the transmission range of the enabled wirelessnetwork and create another physical connection event. If the aggregationof physical connection events crosses the pre-defined threshold counterdue to repeated reception of the same user identity token, the users 110and 112 can exchange the electronic records stored in their respectivedevices 208 and 215 such as social profiles, social check-ins, calendarentries, event subscriptions, etc.

Following this, the calendar engine 305 can match the calendar relatedelectronic records to find any events co-attended by the users 110 and112 and create a calendar connection event. The aggregated physicalconnection events and corresponding calendar connection events can thenbe used to calculate a level of physical interactions between the users110 and 112, which can be depicted through an interaction strengthmetric on Chatter, Facebook, or Twitter profiles of the users 110 and112.

In some implementations, the server 225 can request the users 110 and112 to confirm the connectedness between the aggregated physicalconnection events and corresponding calendar connection events. In someimplementations, the server 225 can apply a filter to the calendarconnection events and received user identity tokens for identifyingparticular events such as an important internal meetings or userproperties like similar work backgrounds, professional titles, etc.

Observer Tool

The devices 208 and 215 can establish wireless communications acrossvarious channels including audio, video, and text. For example, thedevices 208 and 215 can communicate with each other over cellularnetworks including code division multiple-access (CDMA), global systemfor mobile communications (GSM), Enhanced Data GSM Environment (EDGE),long-term evolution (LTE), etc. Similarly, the devices 208 and 215 canestablish a wireless local area network (LAN) such as Wi-Fi, personalarea network like Bluetooth or NFC, etc. Other communication protocolscan also be implemented.

For example, the first user 110 can interact with a second user 112 onChatter, but can interact more heavily with the second user 112 onFacebook or Twitter, or in a social gaming environment such as thatprovided by Zynga, or can physically or proximally interact with thesecond user 112 as evidenced by common check-ins on Foursquare or otherlocation-based social networking systems. In other implementations,interaction strength can also be based upon one or more physicalinteractions that also implement features common to mobile communicationdevices, such as smartphones, tablet computers, etc.

The observer tool 245 can track wireless interactions between the users110 and 112 via the devices 208 and 215. It can extract user activityhistory from web browsers, call logs, applications cache, memory units,etc. to identify—the users in the interaction, the channel communicationof the interaction, and the duration of the interaction. Thisinformation can then be sent to the server 225, which is incommunication with the devices 208 and 215 to create connection events.The server 225 can then calculate a level of wireless interactions basedon one or more wireless connection events that can be used to modify thesocial profiles of users 110 and 112 through an interaction strengthmetric.

FIG. 8 is a flow chart 800 of one implementation of calculating a levelof wireless interactions between first user 110 and second user 112communicating via first device 208 and second device 215. Otherimplementations may perform the steps in different orders and/or withdifferent, fewer or additional steps than the ones illustrated in FIG.8. Multiple steps can be combined in some implementations. Forconvenience, this flowchart is described with reference to the systemthat carries out a method. The system is not necessarily part of themethod.

At step 805, a wireless connection is established between the devices208 and 215 over audio, video, text communication channel. Followingthis, the observer tool 245 and a timer is activated to track and timewireless interactions between the users 110 and 112 via the devices 208and 215 at step 815. The duration of the connection is recorded at step825 using the timer and the channel of communication is recorded at step835. The wireless interactions are filtered at step 845 based on thelength and type of the interaction. In some implementations, a gradationis applied to audio, video, text interactions, with video interactionsbeing “strongest”, audio interactions “average” and text interactions“weakest.” In other implementations, the length of the interactions andamount of data transferred during an interaction is considered duringgradation. As a result, wireless connection event is created at step855, which is stored in the connection event database 221. At step 865,interaction engine 329 calculates a level of wireless interactions basedon the number and gradation of wireless connection events. At step 875,the social profiles of the users 110 and 112 are modified using aninteraction strength metric based on the calculated level of wirelessinteractions.

FIG. 9 is a message exchange chart 900 of one implementation of someelements of FIG. 8. At exchange 905, users 110 and 112 interact across avoice communication channel and the duration of the interaction isreported to the server 225 at exchange 909. As a result, the firstwireless connection event is created at exchange 919. Similarly, anaudio interaction and its duration are recorded at exchanges 925 and 939to create the second wireless connection event at exchange 949.Likewise, at exchange 955 a text interaction between the users 110 and112 is recorded and its duration is reported to the server 225 atexchange 969. Consequently, the third wireless connection event iscreated at exchange 929. The server 225 calculates a wirelessinteractions level at exchange 989 on the basis of the count andgradation of received wireless connection events, which is reported tothe devices 208 and 215 at exchange 992.

In a non-limiting example, the observer tool 245 can track interactionsbetween the users 110 and 112 made through voice calls, SMSs, and Skypevideo calls along with their durations. The observer tool 245 can thenupload the tracked interactions to the remote server 225, with eachupload creating a wireless connection event in the server 225. Using thenumber and gradation of wireless connection events, the interactionengine 319 can calculate a level of wireless interactions between theusers 110 and 112. As a result, the Chatter, Facebook, or Twitterprofiles of the users 110 and 112 can be modified using a interactionstrength metric based on the calculated level of wireless interactions.

Some Particular Implementations

In one implementation, a system is described for calculating real-worlduser interactions between first and second users connected in an onlinesocial environment that includes a processor and code stored in memorycoupled to the processor, which when executed on a processor creates aphysical connection event stored in memory that represents contact orlikely contact between the first and second users when first and secondwireless devices carried by the first and second users establish apeer-to-peer relationship using a direct wireless channel, calculates alevel of physical interactions between the first and second usersincluding at least aggregating the plurality of physical connectionevents, updates the level of physical interactions in memory, andmodifies social profiles of the first and second users using aninteraction strength metric based on the level of physical interactions.

This system and other implementations of the technology disclosed caneach optionally include one or more of the following features and/orfeatures described in connection with additional systems disclosed. Inthe interest of conciseness, the combinations of features disclosed inthis application are not individually enumerated and are not repeatedwith each base set of features. The reader will understand how featuresidentified in this section can readily be combined with sets of basefeatures identified as implementations.

The system can further include physical connection event to record aduration of connection via the direct wireless channel and a pattern ofreceived signal strength during the connection via the direct wirelesschannel. It can include the contact or likely contact being filtered byduration of connection and strength of received signal when multipledirect wireless channels are simultaneously active.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further locates ascheduled physical connection by finding a coincidence of scheduling,registration or check-in information in electronic records of the firstand second users, creating a calendar connection event, and including inthe calculating of the level of physical interactions between the firstand second users an aggregation of the plurality of physical connectionevents.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further confirmsinteraction strength of the physical connection event based on thecalendar connection event, wherein the calendar connection eventcorresponds in at least time or location to information stored with thephysical connection event.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further applies afiltering mechanism to the calendar connection event to identifyscheduling, registration or check-in information in electronic recordsof the second user that meets criteria set by the first user.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further receives from atleast one of the first and second users a response to a query confirmingconnectedness of the physical connection event. It can include the firstand second devices that are configured to automatically exchange useridentity tokens that are meaningful to an interaction server cooperatingwith the online social environment.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further receives from atleast one of the first and second wireless devices at least one useridentity token received in an automatic exchange. It can include theprivacy of the user identity tokens to be limited by user selectableprivacy criteria.

The system can further include code stored in memory coupled to theprocessor, which when executed on a processor further applies afiltering mechanism to the user identity tokens to identify useridentity information of the second user that meets criteria set by thefirst user.

Other implementations may include a non-transitory computer readablestorage medium storing instructions executable by a processor toconstitute a system as described above. Yet another implementation mayinclude a method performed by the system as described above.

In another implementation, a system is described for calculatingreal-world user interactions between first and second users connected inan online social environment that includes a processor and code storedin memory coupled to the processor, which when executed on a processorcreates a physical connection event stored in memory that representscontact or likely contact between the first and second users using firstand second wireless devices sharing a common wireless local area networkaccess point, calculates a level of physical interactions between thefirst and second users including at least aggregating the plurality ofphysical connection events, updates the level of physical interactionsin memory, and modifies social profiles of the first and second usersusing an interaction strength metric based on the level of physicalinteractions.

Other implementations may include a non-transitory computer readablestorage medium storing instructions executable by a processor toconstitute a system as described above. Yet another implementation mayinclude a method performed by the system as described above.

In another implementation, a system is system for calculating wirelessuser interactions between first and second users using wireless devicesthat includes a processor and code stored in memory coupled to theprocessor, which when executed on a processor activates an observer toolto track at least an interaction between the first and second users viathe first and second wireless devices across at least a video, audio, ortext communication channel, creates a wireless connection event storedin memory that represents wireless interactions between the first andsecond users via first and second wireless devices, calculates a levelof wireless interactions between the first and second users including atleast aggregating plurality of wireless connection events, updates thelevel of wireless interactions in memory, and, modifies social profilesof the first and second users using an interaction strength metric basedon the level of wireless interactions

This system and other implementations of the technology disclosed caneach optionally include one or more additional features described.

The system can further include wireless interactions that are filteredby a duration of interaction and the type of communication channel usedfor the interaction.

While the present invention is disclosed by reference to the preferredimplementations and examples detailed above, it is to be understood thatthese examples are intended in an illustrative rather than in a limitingsense. It is contemplated that modifications and combinations willreadily occur to those skilled in the art, which modifications andcombinations will be within the spirit of the invention and the scope ofthe following claims.

What is claimed is:
 1. A database system for displaying aggregatedconnection data, the database system configurable to cause: maintaininga database storing data objects identifying connection events, eachconnection event representing contact or likely contact between users ofa social networking system; processing an indication of a firstconnection event between first and second users of the social networkingsystem; storing, responsive to processing the indication of the firstconnection event, a record of the first connection event in thedatabase, the record of the first connection event being one of aplurality of records of connection events between the first and secondusers stored in the database; processing the plurality of records todetermine a plurality of levels of interaction strength between thefirst and second users, each of the levels of interaction strengthcorresponding to a respective interaction type; and displaying, in auser interface on a display of a first device associated with the firstuser, an interaction strength presentation comprising: an identificationof the first user, an identification of the second user, and indicationsof the plurality of levels of interaction strength between the first andsecond users, the indications of each of the levels of interactionstrength between the first and second users comprising an identificationof the respective interaction type.
 2. The database system of claim 1,wherein: processing the indication of the first connection eventcomprises identifying establishment of a connection, via a directwireless channel, between the first device and a second deviceassociated with the second user, and the record of the first connectionevent comprises data indicating a duration of the connection between thefirst and second wireless devices.
 3. The database system of claim 2,wherein the record of the connection event further comprises dataindicating a pattern of received signal strength during the connectionvia the direct wireless channel.
 4. The database system of claim 2,wherein the first device is configured to automatically transmit and/orreceive a first user identity token, the first user identity token beingone of a plurality of user identity tokens provided by the socialnetworking system, each user identity token comprising encrypted dataunique to a respective user of the social networking system, the firstuser identity token corresponding to a signal transmitted by the firstdevice.
 5. The database system of claim 1, the database system furtherconfigurable to cause: generating a second connection event byprocessing calendar data of the first and second users to identify acoincidence of scheduling, registration or check-in information,storing, responsive to processing the indication of the secondconnection event, a record of the second connection event in thedatabase.
 6. The database system of claim 5, the database system furtherconfigurable to cause: validating a first one of the levels ofinteraction strength between the first and second users based oncalendar information associated with the second connection event, thecalendar information comprising time or location information associatedwith the second connection event.
 7. The database system of claim 5, thedatabase system further configurable to cause: applying a filteringmechanism to the second connection event to identify scheduling,registration or check-in information in electronic records of the seconduser that meets criteria set by the first user.
 8. The database systemof claim 1, the database system further configurable to cause:processing a response to a query received from at least one of the firstand second users, the response to the query confirming the firstconnection event.
 9. The database system of claim 1, wherein theinteraction types include one or more of: a physical interaction, acalendar interaction, a wireless interaction, a desktop interaction. 10.A method of displaying aggregated connection data, the methodcomprising: maintaining, using the database system, a database storingdata objects identifying connection events, each connection eventrepresenting contact or likely contact between users of a socialnetworking system; processing an indication of a first connection eventbetween first and second users of the social networking system; storing,responsive to processing the indication of the first connection event, arecord of the first connection event in the database, the record of thefirst connection event being one of a plurality of records of connectionevents between the first and second users stored in the database;processing the plurality of records to determine a plurality of levelsof interaction strength between the first and second users, each of thelevels of interaction strength corresponding to a respective interactiontype; and causing display of, in a user interface on a display of afirst device associated with the first user, an interaction strengthpresentation comprising: an identification of the first user, anidentification of the second user, and indications of the plurality oflevels of interaction strength between the first and second users, theindication of each of the levels of interaction strength between thefirst and second users comprising an identification of the respectiveinteraction type.
 11. The method of claim 10, wherein: processing theindication of the first connection event comprises identifyingestablishment of a connection, via a direct wireless channel, betweenthe first device and a second device associated with the second user,and the record of the first connection event comprises data indicating aduration of the connection between the first and second wirelessdevices.
 12. The database system of claim 11, wherein the record of theconnection event further comprises data indicating a pattern of receivedsignal strength during the connection via the direct wireless channel.13. The method of claim 11, wherein the first device is configured toautomatically transmit and/or receive a first user identity token, thefirst user identity token being one of a plurality of user identitytokens provided by the social networking system, each user identitytoken comprising encrypted data unique to a respective user of thesocial networking system, the first user identity token corresponding toa signal transmitted by the first device.
 14. The method of claim 1,further comprising: generating a second connection event by processingcalendar data of the first and second users to identify a coincidence ofscheduling, registration or check-in information, storing, responsive toprocessing the indication of the second connection event, a record ofthe second connection event in the database.
 15. The method of claim 14,further comprising: validating a first one of the levels of interactionstrength between the first and second users based on calendarinformation associated with the second connection event, the calendarinformation comprising time or location information associated with thesecond connection event.
 16. The method of claim 14, further comprising:applying a filtering mechanism to the second connection event toidentify scheduling, registration or check-in information in electronicrecords of the second user that meets criteria set by the first user.17. A computer program product comprising computer-readable program codecapable of being executed by one or more processors when retrieved froma non-transitory computer-readable medium, the program code comprisinginstructions configurable to cause: maintaining, using a databasesystem, a database storing data objects identifying connection events,each connection event representing contact or likely contact betweenusers of a social networking system implemented using the databasesystem; processing an indication of a first connection event betweenfirst and second users of the social networking system; storing,responsive to processing the indication of the first connection event, arecord of the first connection event in the database, the record of thefirst connection event being one of a plurality of records of connectionevents between the first and second users stored in the database;processing the plurality of records to determine a plurality of levelsof interaction strength between the first and second users, each of thelevels of interaction strength corresponding to a respective interactiontype; and displaying, in a user interface on a display of a first deviceassociated with the first user, an interaction strength presentationcomprising: an identification of the first user, an identification ofthe second user, and indications of the plurality of levels ofinteraction strength between the first and second users, the indicationof each of the levels of interaction strength between the first andsecond users comprising an identification of the respective interactiontype.
 18. The computer program product of claim 17, wherein: processingthe indication of the first connection event comprises identifyingestablishment of a connection, via a direct wireless channel, betweenthe first device and a second device associated with the second user,and the record of the first connection event comprises data indicating aduration of the connection between the first and second wirelessdevices.
 19. The computer program product of claim 18, wherein therecord of the connection event further comprises data indicating apattern of received signal strength during the connection via the directwireless channel.
 20. The computer program product of claim 18, whereinthe first device is configured to automatically transmit and/or receivea first user identity token, the first user identity token being one ofa plurality of user identity tokens provided by the social networkingsystem, each user identity token comprising encrypted data unique to arespective user of the social networking system, the first user identitytoken corresponding to a signal transmitted by the first device.